/**
 * @Author: 罗显
 * @CreateTime: 2025-04-29
 * @Version: 1.0
 */


package com.it.common.config;

public enum ResultBean {
    // 成功
    SUCCESS("200", "操作成功"),
    // 客户端错误 (4xx 系列)
    BAD_REQUEST("400", "请求参数错误"), // 通用参数错误
    UNAUTHORIZED("401", "未授权，请登录"), // 需要认证，但未提供或无效
    FORBIDDEN("403", "禁止访问"),       // 已认证，但权限不足
    NOT_FOUND("404", "资源未找到"),    // 请求的资源不存在
    METHOD_NOT_ALLOWED("405", "请求方法不支持"),//使用了不支持的http方法
    SAVE_FAILED("409", "保存失败"),        // 资源冲突，如唯一键冲突
    // 服务端错误 (5xx 系列)
    INTERNAL_SERVER_ERROR("500", "服务器内部错误"), // 通用服务器错误
    SERVICE_UNAVAILABLE("503", "服务暂时不可用"), // 服务维护或过载

    // 特定业务错误 (自定义，避免与标准 HTTP 冲突)
    DATA_VALIDATION_ERROR("600", "数据验证失败"), // 参数格式或内容不符合要求
    LOGIN_FAILED("601", "账号或密码错误"), // 登录失败
    REMOVE_FAILED("602", "删除失败"),     // 删除资源失败
    SEARCH_FAILED("603", "查询失败"),     // 查询资源失败
    MODIFY_FAILED("604", "修改失败"),     // 修改资源失败

    NOT_NULL("700", "参数不能为空"),       // 参数不能为空
    PASSWORD_ERROR("701", "账号或密码错误，请检查登录信息!"),
    EXIT_ERROR("702", "已存在，请重新输入!"),
    EXCEPTION_ERROR("9999", "系统异常，请稍后再试"), // 未预期的异常

    // 新增 FAIL 枚举项
    FAIL("999", "操作失败");

    private String value;
    private String description;

    ResultBean(String value, String description) {
        this.value = value;
        this.description = description;
    }

    public String value() {
        return value;
    }

    public String description() {
        return description;
    }
}